package com.niu1078.joe.ec.launcher;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.View;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.widget.ImageView;
import android.widget.Toast;

import com.niu1078.joe.api.Api;
import com.niu1078.joe.app.AppManager;
import com.niu1078.joe.app.Joe;
import com.niu1078.joe.base.BaseContacts;
import com.niu1078.joe.delegates.JoeDelegate;
import com.niu1078.joe.ec.R;
import com.niu1078.joe.ec.R2;
import com.niu1078.joe.ec.sign.SignInDelegate;
import com.niu1078.joe.mylistener.JoeAnimationListener;
import com.niu1078.joe.net.RestClient;
import com.niu1078.joe.net.RestCreator;
import com.niu1078.joe.net.callback.ISuccess;
import com.niu1078.joe.utils.sp.JoeSp;

import java.util.WeakHashMap;

import butterknife.BindView;

/**
 * author :ywq .
 * time: 2017/12/19:14:11.
 * desc :启动界面
 * action:启动界面 网络请求一张图片作为背景
 */

public class LauncherDelegate extends JoeDelegate {


    @BindView(R2.id.splash)
    ImageView splash;
    @BindView(R2.id.iv_ad)
    ImageView ivAd;


    @Override
    public Object setLayout() {
        return R.layout.delegate_launcher;
    }

    @Override
    public void onBindView(@Nullable Bundle savedInstanceState, View rootView) {
        WeakHashMap<String, Object> params = RestCreator.getParams();
        params.put("code", "shanping");
        params.put("pageNo", "1");
        params.put("pageSize", "1");
        //网络请求下
        RestClient.builder()
                .url(Api.ADVLIST)
                .params(params)
                .success(new ISuccess() {
                    @Override
                    public void onSuccess(String response) {
                        System.out.println("请求数据:" + response);

                    }
                })
                .build()
                .post();

        initAnimation();

    }


    private void initAnimation() {
        AlphaAnimation animation = new AlphaAnimation(0.9f, 1.0f);
        animation.setDuration(BaseContacts.SPLASH_DISPLAY_TIMES);
        splash.startAnimation(animation);

        //动画监听的方法有三个 这里采用的只有一个
        //自定义类实现原有接口 然后使用内部类的方式 只要我们实现一个方法就可以了
        animation.setAnimationListener(new JoeAnimationListener() {
            @Override
            public void onAnimationEnd(Animation animation) {
                checkIsShowScroll();
            }
        });
    }

    /**
     * 进入下一个界面  首先判断是不是第一次进入app
     */
    private void checkIsShowScroll() {
        //突然想到一个好的方法  每次更新的时候 都需要用户进入引导界面 我们可以使用版本号来判断   把现在的版本号和原来的版本号 做个对比
        //如果一样 就不进入 如果不一样 进入 把新的版本号存储
        int versionCode = JoeSp.getVersion();
        //获取现在的版本号 注意版本号是在core和app里面同时配置
        int versionCode1 = AppManager.getVersionCode();
//判断是不是一样的
        if (versionCode == versionCode1) {
            //存储的是一样的 不需要进入  直接进入主界面
            Toast.makeText(Joe.getApplicationContext(), "直接进入主界面", Toast.LENGTH_SHORT).show();
            start(new SignInDelegate(), SINGLETASK);

        } else {
            //需要进入引导界面
            Toast.makeText(Joe.getApplicationContext(), "进入引导界面", Toast.LENGTH_SHORT).show();
            JoeSp.setVersion(versionCode1);

            start(new LauncherScrollDelegate(), SINGLETASK);

        }

    }


}
